package site.beanyon.now.mapper;

import site.beanyon.now.model.po.TimeCardPO;

import java.util.List;

/**
 * 时间卡片ORM映射接口
 */
public interface TimeCardMapper {
    /**
     * 根据用户id和时间戳查询时间卡片列表
     *
     * @param userId 用户id
     * @param date   要查询的日期（yyyy-MM-dd 格式)
     * @return 时间卡片列表
     */
    List<TimeCardPO> listTimeCard(Integer userId, String date);

    /**
     * 向数据库中为用户插入时间卡片
     *
     * @param timeCardPO 时间卡片持久化对象
     * @return 受影响的行数
     */
    Integer insertTimeCard(TimeCardPO timeCardPO);

    /**
     * 向数据库中为用户插入时间卡片
     *
     * @param userId   用户id
     * @param activity 活动名称
     * @return 受影响的行数
     */
    Integer insertTimeCardWithActivity(int userId, String activity);

    /**
     * 删除时间卡片
     *
     * @param userId 时间卡片所属的用户id
     * @param cardId 要删除的时间卡片id
     * @return 受影响的行数
     */
    Integer deleteTimeCard(Integer userId, Integer cardId);

    /**
     * 更新时间卡片的activity
     *
     * @param userId   时间卡片所属的用户id
     * @param cardId   时间卡片id
     * @param activity 新的activity
     * @return 受影响的行数
     */
    Integer updateActivity(Integer userId, Integer cardId, String activity);

    /**
     * 根据activity查询时间卡片id数量
     *
     * @param userId   用户id
     * @param activity 活动名称
     * @return 时间卡片id数量
     */
    Integer queryCountByActivity(Integer userId, String activity);
}
